Traditional JDBC এবং Spring JDBC-এর মধ্যে মূল পার্থক্যগুলো হলো Traditional JDBC-তে প্রচুর বয়লারপ্লেট কোড লেখা প্রয়োজন, যেখানে Spring JDBC এই জটিলতাগুলো হ্রাস করে। নিচে এদের মধ্যে গুরুত্বপূর্ণ পার্থক্যগুলো উল্লেখ করা হলো:
Traditional JDBC:
উদাহরণ:
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "user", "password");
String sql = "SELECT id, name FROM students WHERE id = ?";
statement = connection.prepareStatement(sql);
statement.setInt(1, 1);
resultSet = statement.executeQuery();
while (resultSet.next()) {
System.out.println("ID: " + resultSet.getInt("id") + ", Name: " + resultSet.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (resultSet != null) resultSet.close();
if (statement != null) statement.close();
if (connection != null) connection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
Spring JDBC:
JdbcTemplate
এবং অন্যান্য utility ক্লাস ব্যবহার করে বয়লারপ্লেট কোড প্রায় পুরোপুরি এড়ানো যায়।উদাহরণ:
@Autowired
private JdbcTemplate jdbcTemplate;
public List<Student> getStudents() {
String sql = "SELECT id, name FROM students";
return jdbcTemplate.query(sql, (rs, rowNum) -> {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
return student;
});
}
Traditional JDBC:
SQLException
হ্যান্ডল করতে অতিরিক্ত কোড প্রয়োজন।উদাহরণ:
try {
// Database operation
} catch (SQLException e) {
e.printStackTrace();
}
Spring JDBC:
উদাহরণ:
try {
jdbcTemplate.queryForObject("SELECT * FROM students WHERE id = ?", new Object[]{1}, Student.class);
} catch (DataAccessException e) {
e.printStackTrace();
}
DataSource
ব্যবহার করে কানেকশন পুলিং সহজে ইমপ্লিমেন্ট করা যায়।JdbcTemplate
এবং NamedParameterJdbcTemplate
ব্যবহার করে ডাটাবেস অপারেশন সহজ করা হয়।Traditional JDBC:
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "user", "password");
PreparedStatement ps = conn.prepareStatement("SELECT id, name FROM students WHERE id = ?");
ps.setInt(1, 1);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));
}
rs.close();
ps.close();
conn.close();
Spring JDBC:
String sql = "SELECT id, name FROM students WHERE id = ?";
Student student = jdbcTemplate.queryForObject(sql, new Object[]{1}, (rs, rowNum) -> {
Student s = new Student();
s.setId(rs.getInt("id"));
s.setName(rs.getString("name"));
return s;
});
System.out.println(student);
বৈশিষ্ট্য | Traditional JDBC | Spring JDBC |
---|---|---|
বয়লারপ্লেট কোড | অনেক বেশি | খুবই কম |
কানেকশন ম্যানেজমেন্ট | ম্যানুয়াল | Spring স্বয়ংক্রিয়ভাবে পরিচালনা করে |
এক্সসেপশন হ্যান্ডলিং | চেকড এক্সসেপশন | রানটাইম এক্সসেপশন |
কোড রিডেবিলিটি | কম | বেশি |
ইউটিলিটি সাপোর্ট | নেই | অনেক বেশি |
প্রোডাক্টিভিটি | কম | বেশি |
Spring JDBC সহজ, কার্যকর এবং উৎপাদনশীল। Traditional JDBC এর তুলনায় এটি ডেভেলপারদের জন্য অনেক বেশি সুবিধাজনক।
Read more